package com.itheima.web;

import com.itheima.common.R;
import org.apache.tomcat.util.http.fileupload.IOUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.UUID;

@RestController
public class FileController {

    //@Value("${fileDir}")
    //private String filterDir;
    /*
    文件上传
     */
    @PostMapping("/common/upload")
    public R upload(MultipartFile file) throws IOException {
        //获取原始的文件名字
        String s = file.getOriginalFilename();
        //2.切割出来后缀名
        String substring = s.substring(s.lastIndexOf("."));
        //3.构建一个新的文件名字【UUID】
        String prefix = UUID.randomUUID().toString().replaceAll("-", "");
        //4.拼接成一个全新的名字
        String newName=prefix+substring;
        //5. 保存到指定的位置
        //5.1如果指定文件的位置不存在，
        File filePath = new File("D:/heima132/img");
        if (!filePath.exists()){
            filePath.mkdirs();
        }
        //把文件存起来
        file.transferTo(new File(filePath,newName));

        return R.success(newName);
    }

    /*
    文件下载
     */
    @GetMapping("/common/download")
    public void download(String name, HttpServletResponse resp) throws Exception {
        //构建一个输出流，输出给客户端
        String name1="D:/heima132/img"+"/"+name;

        FileInputStream fileInputStream = new FileInputStream(name1);

        //输入流和输出流对接
        ServletOutputStream outputStream = resp.getOutputStream();

        //io 对接 ioutils 工具类
        IOUtils.copy(fileInputStream,outputStream);

    }
}
